package com.vhans.db.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vhans.core.web.model.vo.QuizSearchVO;
import com.vhans.core.domain.BQuiz;
import com.vhans.db.model.dto.ConditionDTO;
import com.vhans.db.model.dto.quiz.QuizDTO;
import com.vhans.db.model.vo.quiz.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 题目业务接口
 *
 * @author vhans
 **/
public interface IBQuizService extends IService<BQuiz> {

    /**
     * 查看题目列表
     *
     * @param condition 条件
     * @return 题目列表
     */
    List<QuizVO> listQuizVO(ConditionDTO condition);

    /**
     * 添加题目
     *
     * @param quiz 题目
     */
    void addQuiz(QuizDTO quiz);

    /**
     * 删除题目
     *
     * @param quizIdList 题目id
     */
    void deleteQuiz(List<Integer> quizIdList);

    /**
     * 修改题目
     *
     * @param quiz 题目
     */
    void updateQuiz(QuizDTO quiz);

    /**
     * 编辑题目
     *
     * @param quizId 题目id
     * @return 题目
     */
    QuizInfoVO editQuiz(Integer quizId);

    /**
     * 搜索题目
     *
     * @param keyword 关键字
     * @return 题目列表
     */
    List<QuizSearchVO> listQuizSBySearch(String keyword);

    /**
     * 查看学习中心题目列表
     *
     * @return 首页题目列表
     */
    List<QuizStudyListVO> listQuizStudyVO();

    /**
     * 查看题目
     *
     * @param quizId 题目id
     * @return 题目
     */
    QuizStudyVO getQuizStudyById(Integer quizId);

    /**
     * 查看题目总览
     *
     * @return 题目总览
     */
    List<QuizOverviewVO> listQuizOverviewVO();

    /**
     * 查看推荐题目
     *
     * @return 推荐题目
     */
    List<QuizRecommendVO> listQuizRecommendVO();

    /**
     * 收藏题目
     *
     * @param quizId 题目id
     */
    void collectQuiz(Integer quizId);

    /**
     * 上传题目图片
     *
     * @param file 文件
     * @return 题目图片地址
     */
    String saveQuizImages(MultipartFile file);
}
